package com.wugui.datax.admin.tool.meta;

public interface DatabaseInterface {

	/**
	 * Returns the minimal SQL to launch in order to determine the layout of the
	 * resultset for a given com.com.wugui.datax.admin.tool.database table
	 *
	 * @param tableName The name of the table to determine the layout for
	 * @return The SQL to launch.
	 */
	String getSQLQueryFields(String tableName);

	/**
	 * 获取主键字段
	 *
	 * @return
	 */
	String getSQLQueryPrimaryKey();

	String getSQLQueryTableNameComment();

	String getSQLQueryTablesNameComments();

	/**
	 * 获取所有表名的sql
	 *
	 * @return
	 */
	String getSQLQueryTables(String... tableSchema);

	/**
	 * 获取所有表名的sql
	 *
	 * @return
	 */
	String getSQLQueryTables();

	/**
	 * 获取 Table schema
	 *
	 * @return
	 */
	String getSQLQueryTableSchema(String... args);

	/**
	 * 获取所有的字段的sql
	 *
	 * @return
	 */
	String getSQLQueryColumns(String... args);

	/**
	 * 获取表和字段注释的sql语句
	 *
	 * @return The SQL to launch.
	 */
	String getSQLQueryComment(String schemaName, String tableName, String columnName);

	/**
	 * 获取当前表maxId
	 * 
	 * @param tableName
	 * @param primaryKey
	 * @return
	 */
	String getMaxId(String tableName, String primaryKey);
}
